package com.coolingme.general.interfaceadpter;

/**
 * 适配器,将源角色（Adaptee）转为目标角色（Target）的类示例
 * <p>
 * 接口适配器的关注点与类适配器和对象适配器的关注点不太一样，类适配器和对象适配器着重于将系
 * 统存在的一个角色（Adaptee）转化成目标接口（Target）所需内容，而接口适配器的使用场景是解决
 * 接口方法过多，如果直接实现接口，那么类会多出许多空实现的方法，类显得很臃肿。此时，使用接口
 * 适配器就能让我们只实现我们需要的接口方法，目标更清晰。
 * <p>
 * 接口适配器的主要原理就是原理利用抽象类实现接口，并且空实现接口众多方法
 *
 * @author wangyue
 * @date 2020-09-19 23:48
 */
public class Adapter implements Target {

    /**
     * 源角色
     */
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public int request() {
        return adaptee.specificRequest() / 10;
    }

    @Override
    public int request2() {
        return adaptee.specificRequest() / 20;
    }

    @Override
    public int request3() {
        return adaptee.specificRequest() / 30;
    }
}
